

// fs   文件系统
// Fils System

// 得到文件与目录的信息：stat
// 创建一个目录：mkdir
// 创建文件并写入内容：writeFile，appendFile
// 读取文件的内容：readFile
// 列出目录的东西：readdir
// 重命名目录或文件：rename
// 删除目录与文件：rmdir，unlink

const fs = require("fs")

// fs.stat(path[, options], callback)
// fs.statSync()
// Async 异步
// sync  同步

// fs.stat("./events.js", (err, data) => {
//     if (err) throw err;    // throw  抛出异常  终止执行
//     console.log(data);
//     console.log(!data.isFile() ? '这是一个文件' : '这是一个目录');
// })

// fs.stat("./events.js", (err, data) => {
//     if (err) throw err;    // throw  抛出异常  终止执行
//     console.log(data);
//     console.log(data.isDirectory());
//     console.log(!data.isDirectory() ? '这是一个文件' : '这是一个目录');
// })


// 同步写法 
// const stats = fs.statSync("../day01")
// console.log(stats.isDirectory() ? '这是一个文件' : '这是一个目录');



// 创建一个目录：mkdir

// fs.mkdir("./logs", (err) => {
//     if (err) {
//         console.log(err)
//         throw err;
//     } else {
//         console.log("文件夹新建成功");
//     }
// })


// fs.mkdirSync("./demos")


// 创建文件并写入内容：writeFilt,appendFile

// writeFile     每次直接覆盖
// appendFile    没有就新建  有就累计新增
// fs.writeFile("./logs/demo.log", "wuhan2110", (err) => {
//     if (err) throw err
//     console.log("writeFilt.文件新建成功");
// })

// fs.appendFile("./logs/hello.log", "wuhan2110", (err) => {
//     if (err) throw err
//     console.log("appendFile.文件新建成功");
// })
// for(var i=0;i<100;i++){
//   fs.appendFile("./logs/list.txt","Wuhan2110-天道酬勤 "+i+" \n","utf8",(err)=>{
//     if(err) throw err;
//     console.log("appendFile - 文件新建成功")
//   })
// }


// 读取文件的内容：readFile
// fs.readFile(path[, options], callback)
// fs.readFile("./logs/demo.log", "utf8", (err, data) => {
//     if (err) throw err;
//     console.log(data);
// })


// 列出目录的东西：readdir

// fs.readdir("./logs", (err, files) => {
//     if (err) throw err
//     console.log(files);
// })

// var files = []
// function getFiles(name) {
//     fs.readdir(name, (err, files) => {
//         files.forEach((item, index) => {
//             console.log(name + "/" + item);
//             fs.stat(name + "/" + item, (err, stat) => {
//                 if (err) throw err;
//                 if (stat.isDirectory()) {
//                     // 继续
//                     // console.log(123);
//                     getFiles(name + "/" + item)
//                 } else {
//                     files.push(name + "/" + item)
//                     // console.log(files);
//                 }
//             })
//         })
//     })
// }
// getFiles("../day02")


// 文件修改  rename
// fs.rename("demos", "news", (err) => {
//     if (err) throw err
//     console.log("重命名成功");
// })


// 删除目录与文件，rmdir,unlink   rmdir 删除目录  unlink 删除文件

// fs.rmdir("news", (err) => {
//     if (err) throw err;
//     console.log("文件删除成功");
// })

var files = []
function unlinkFiles(name) {
    fs.readdir(name, (err, files) => {
        if (err) throw err;
        if (files.length > 0) {
            // 有子文件
            files.forEach((item, index) => {
                fs.stat(name + "/" + item, (err, stat) => {
                    if (err) throw err;
                    if (stat.isDirectory()) {
                        // 文件夹
                        unlinkFiles(name + "/" + item)

                    } else {
                        // 文件删除

                        fs.unlink(name + "/" + item, (err) => {
                            if (err) throw err;
                            console.log(name + "/" + item + '删除成功')
                            // if(index==files.length-1){
                            //   // 删除自己  
                            //   fs.rmdirSync(name) 
                            // }
                        })
                    }
                })
            })
        } else {
            fs.rmdirSync(name)
        }
    })
}

unlinkFiles("./logs")











